@@Dennyz Dias, putz cara, eu acabei de testar. E tá tudo certo...
Como é q vc ta usando o comando in-game?
Eu usei: !depositar 100 (por exemplo) e deu tudo tranquilo...
O meu funciona perfeitamente também até mais do que eu esperava. Rsrs
Por Dennyz Dias, 30 de jan. de 2016 em Scripts
info
Grupo: Visconde
Registrado: 28/06/11
Posts: 356
Reputação: +26
Char no Tibia: Akor Rysea

@@Dennyz Dias, putz cara, eu acabei de testar. E tá tudo certo...
Como é q vc ta usando o comando in-game?
Eu usei: !depositar 100 (por exemplo) e deu tudo tranquilo...
O meu funciona perfeitamente também até mais do que eu esperava. Rsrs
info
Grupo: Conde
Registrado: 07/04/15
Posts: 926
Reputação: +335
Gênero: Masculino

Update:
O script continha um bug que permitia crashar o servidor (caso o player botasse um numero negativo) e tambem caso o parametro não fosse um numero, o player falava uma mensagem normal. Esse erros foram corrigidos:
situationpoints.lua:
local pointObj = 2160 --id do item "points"
function getAccountPoints(cid)
local res = db.getResult('SELECT `premium_points` FROM `accounts` WHERE id='..getPlayerAccountId(cid)..'')
if(res:getID() == -1) then
return false
end
local ret = res:getDataInt("premium_points")
res:free()
return tonumber(ret)
end
function onSay(cid, words, param)
if (words == '!sacar') then
if param ~= "" then
if tonumber(param) ~= nil then
if 0 >= tonumber(param) then
doPlayerSendCancel(cid, "O valor precisa ser acima de zero.")
elseif 0 < tonumber(param) and tonumber(param) <= getAccountPoints(cid) then
doPlayerAddItem(cid, pointObj, tonumber(param))
db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) - tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'')
newPoints = getAccountPoints(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você ainda possui '..newPoints..' premium points em sua conta.')
else
doPlayerSendCancel(cid, "Você não tem tantos premium points assim.")
end
else
doPlayerSendCancel(cid, "O valor precisa ser um numero.")
end
else
doPlayerSendCancel(cid, "Você precisa especificar um valor.")
end
elseif (words == '!saldo') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Seu saldo no shopping atual é de '..getAccountPoints(cid)..' Premium points.')
elseif (words == '!depositar') then
if param ~= "" then
if tonumber(param) ~= nil then
if 0 >= tonumber(param) then
doPlayerSendCancel(cid, "O valor precisa ser acima de zero.")
elseif 0 < tonumber(param) and tonumber(param) <= getPlayerItemCount(cid, pointObj) then
doPlayerRemoveItem(cid, pointObj, tonumber(param))
db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) + tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'')
newPoints = getAccountPoints(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você acabou de depositar '..param..' premium points no shopping. Seu saldo agora é de '..newPoints..' premium points.')
else
doPlayerSendCancel(cid, "Você não tem tantos premium points assim.")
end
else
doPlayerSendCancel(cid, "O valor precisa ser um numero.")
end
else
doPlayerSendCancel(cid, "Você precisa especificar um valor.")
end
end
return true
end
A tag em talkactions.xml permanece a mesma.
Editado Janeiro 30 por Danihcv
info
Grupo: Visconde
Registrado: 28/06/11
Posts: 356
Reputação: +26
Char no Tibia: Akor Rysea

O do tópico que eu criei e igual a esse né? ? ou precisa editar algo lá?Update:
O script continha um bug que permitia crashar o servidor (caso o player botasse um numero negativo) e tambem caso o parametro não fosse um numero, o player falava uma mensagem normal. Esse erros foram corrigidos:
situationpoints.lua:
local pointObj = 2160 --id do item "points" function getAccountPoints(cid) local res = db.getResult('SELECT `premium_points` FROM `accounts` WHERE id='..getPlayerAccountId(cid)..'') if(res:getID() == -1) then return false end local ret = res:getDataInt("premium_points") res:free() return tonumber(ret) end function onSay(cid, words, param) print(tonumber(param)) -- =nil if (words == '!sacar') then if param ~= "" then if tonumber(param) ~= nil then if 0 >= tonumber(param) then doPlayerSendCancel(cid, "O valor precisa ser acima de zero.") elseif 0 < tonumber(param) and tonumber(param) <= getAccountPoints(cid) then doPlayerAddItem(cid, pointObj, tonumber(param)) db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) - tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'') newPoints = getAccountPoints(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você ainda possui '..newPoints..' premium points em sua conta.') else doPlayerSendCancel(cid, "Você não tem tantos premium points assim.") end else doPlayerSendCancel(cid, "O valor precisa ser um numero.") end else doPlayerSendCancel(cid, "Você precisa especificar um valor.") end elseif (words == '!saldo') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Seu saldo no shopping atual é de '..getAccountPoints(cid)..' Premium points.') elseif (words == '!depositar') then if param ~= "" then if tonumber(param) ~= nil then if 0 >= tonumber(param) then doPlayerSendCancel(cid, "O valor precisa ser acima de zero.") elseif 0 < tonumber(param) and tonumber(param) <= getPlayerItemCount(cid, pointObj) then doPlayerRemoveItem(cid, pointObj, tonumber(param)) db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) + tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'') newPoints = getAccountPoints(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você acabou de depositar '..param..' premium points no shopping. Seu saldo agora é de '..newPoints..' premium points.') else doPlayerSendCancel(cid, "Você não tem tantos premium points assim.") end else doPlayerSendCancel(cid, "O valor precisa ser um numero.") end else doPlayerSendCancel(cid, "Você precisa especificar um valor.") end end return true endA tag em talkactions.xml permanece a mesma.
Editado Janeiro 30 por julhinhokullitz
info
Grupo: Conde
Registrado: 07/04/15
Posts: 926
Reputação: +335
Gênero: Masculino

info
Grupo: Visconde
Registrado: 28/06/11
Posts: 356
Reputação: +26
Char no Tibia: Akor Rysea

info
Grupo: Conde
Registrado: 07/04/15
Posts: 926
Reputação: +335
Gênero: Masculino

info
Grupo: Cavaleiro
Registrado: 17/06/15
Posts: 177
Reputação: +9
Char no Tibia: GOD Server

Sim dan funfou certinho 100% mano vlw mesmo
n tava funfando o depositar pq esqueci de adicionar na tag tava !saldo;!sacar
mais eu vi agora ta 100%
Obrigado mesmo
info
Grupo: Conde
Registrado: 07/04/15
Posts: 926
Reputação: +335
Gênero: Masculino
@@Dennyz Dias, putz cara, eu acabei de testar. E tá tudo certo...
Como é q vc ta usando o comando in-game?
Eu usei: !depositar 100 (por exemplo) e deu tudo tranquilo...